package com.example.javapracticaltraining.service;

import com.example.javapracticaltraining.entity.dto.CarePlan;
import com.example.javapracticaltraining.entity.dto.ElderProfile;
import com.example.javapracticaltraining.entity.dto.HealthData;
import com.example.javapracticaltraining.entity.dto.HealthReport;
import com.example.javapracticaltraining.entity.pojo.AiHealthWarning;

import java.util.List;

/**
 * 智能健康辅助服务
 *
 * @author awking
 * @date 2025/06/30
 */
public interface SmartHealthService {

	/**
	 * 多模态健康咨询与答疑
	 * @param userId 用户ID（老人、家属、医护人员）
	 * @param question 用户提问（支持文本）
	 * @return 模型生成的回答（结构化或纯文本）
	 */
	String healthQnA(int userId, String question);

	/**
	 * 获取老人健康数据
	 * @param elderlyId 老人ID
	 * @return 老人健康数据（包含基本信息、健康记录、护理记录、医疗记录）
	 */
	HealthData getElderlyHealthData(Integer elderlyId);

	/**
	 * 获取所有老人健康数据
	 * @return 所有老人健康数据列表
	 */
	List<HealthData> getAllElderlyHealthData();

	/**
	 * 智能健康风险预警分析
	 * @return 识别出的风险与预警建议（如高血压风险、用药冲突）
	 */
	List<AiHealthWarning> analyzeHealthRisks();

	/**
	 * 个性化护理建议生成
	 * @param elderProfile 老人健康档案及护理等级、偏好
	 * @return 个性化护理建议（结构化，如每日训练、饮食计划）
	 */
	String generatePersonalizedCarePlan(ElderProfile elderProfile);



	/**
	 * 自动化健康报告生成
	 * @param elderlyId 老人ID
	 * @param reportType 报告类型（如“daily”, “weekly”, “monthly”）
	 * @param targetRole 目标接收者角色（如"family", "doctor"）
	 * @return 自动生成的健康报告
	 */
	HealthReport generateHealthReport(Integer elderlyId, String reportType, String targetRole);

	/**
	 * 医患沟通优化（术语解释/文本转换）
	 * @param originalText 原始医学术语或文本
	 * @param targetRole 目标听众（如“family”, “elder”, “nurse”）
	 * @return 优化后的沟通内容（更通俗易懂）
	 */
	String optimizeCommunication(String originalText, String targetRole);
}
